package com.hngates.architecture.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hngates.common.annotation.Excel;
import com.hngates.common.core.domain.BaseEntity;

/**
 * 劳务合同对象 arc_labour_contract
 * 
 * @author jwhe
 * @date 2022-07-04
 */
public class ArcLabourContract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 记录id */
    private Long id;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    /** 删除标志 */
    private String delFlag;

    /** 工地id */
    @Excel(name = "工地id")
    private Long projectId;

    /** 施工单位id */
    @Excel(name = "施工单位id")
    private Long labourId;

    /** 劳务分包单位ID */
    @Excel(name = "劳务分包单位ID")
    private Long subLabourId;

    /** 合同金额 */
    @Excel(name = "合同金额")
    private BigDecimal contractAmount;

    /** 支付方式 */
    @Excel(name = "支付方式")
    private String payMethod;

    /** 拖欠工程款金额 */
    @Excel(name = "拖欠工程款金额")
    private BigDecimal paymentArrears;

    /** 计划支付日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划支付日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planPayDate;

    public Long getId() {
        return id;
    }

    public ArcLabourContract setId(Long id) {
        this.id = id;
        return this;
    }

    public String getStatus() {
        return status;
    }

    public ArcLabourContract setStatus(String status) {
        this.status = status;
        return this;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public ArcLabourContract setDelFlag(String delFlag) {
        this.delFlag = delFlag;
        return this;
    }

    public Long getProjectId() {
        return projectId;
    }

    public ArcLabourContract setProjectId(Long projectId) {
        this.projectId = projectId;
        return this;
    }

    public Long getLabourId() {
        return labourId;
    }

    public ArcLabourContract setLabourId(Long labourId) {
        this.labourId = labourId;
        return this;
    }

    public Long getSubLabourId() {
        return subLabourId;
    }

    public ArcLabourContract setSubLabourId(Long subLabourId) {
        this.subLabourId = subLabourId;
        return this;
    }

    public BigDecimal getContractAmount() {
        return contractAmount;
    }

    public ArcLabourContract setContractAmount(BigDecimal contractAmount) {
        this.contractAmount = contractAmount;
        return this;
    }

    public String getPayMethod() {
        return payMethod;
    }

    public ArcLabourContract setPayMethod(String payMethod) {
        this.payMethod = payMethod;
        return this;
    }

    public BigDecimal getPaymentArrears() {
        return paymentArrears;
    }

    public ArcLabourContract setPaymentArrears(BigDecimal paymentArrears) {
        this.paymentArrears = paymentArrears;
        return this;
    }

    public Date getPlanPayDate() {
        return planPayDate;
    }

    public ArcLabourContract setPlanPayDate(Date planPayDate) {
        this.planPayDate = planPayDate;
        return this;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("projectId", getProjectId())
            .append("labourId", getLabourId())
            .append("subLabourId", getSubLabourId())
            .append("contractAmount", getContractAmount())
            .append("payMethod", getPayMethod())
            .append("paymentArrears", getPaymentArrears())
            .append("planPayDate", getPlanPayDate())
            .toString();
    }
}
